<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>PowerVR SDK</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
<table width="100%">
  <tr>
    <td width="33%">
      <p align="left">&nbsp;<a href="http://www.imgtec.com"><img border="0" src="IMGLogo.jpg" width="200" height="30"></a></p>
    </td>
    <td width="33%">
      <p align="center"><font color="#808080" face="Arial" size="2">PowerVR Software Development Kit</a></font></p>
    </td>
    <td width="34%">
      <p align="right"><a href="http://www.powervr.com"><img border="0" src="PVRlogo.jpg" width="200" height="27"></a></p>
    </td>
  </tr>
</table>
<hr>
</head><body>
<!-- Generated by Doxygen 1.3.6 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>PVRTVertex.h File Reference</h1><code>#include "<a class="el" href="PVRTError_8h-source.html">PVRTError.h</a>"</code><br>

<p>
Include dependency graph for PVRTVertex.h:<p><center><img src="PVRTVertex_8h__incl.png" border="0" usemap="#PVRTVertex.h_map" alt="Include dependency graph"></center>
<map name="PVRTVertex.h_map">
<area href="PVRTError_8h.html" shape="rect" coords="11,81,109,108" alt="">
</map>

<p>
This graph shows which files directly or indirectly include this file:<p><center><img src="PVRTVertex_8h__dep__incl.png" border="0" usemap="#PVRTVertex.hdep_map" alt="Included by dependency graph"></center>
<map name="PVRTVertex.hdep_map">
<area href="OGLES2Tools_8h.html" shape="rect" coords="39,7,156,33" alt="">
<area href="PVRTBoneBatch_8h.html" shape="rect" coords="58,156,191,183" alt="">
<area href="PVRTModelPOD_8h.html" shape="rect" coords="135,81,268,108" alt="">
</map>

<p>
<a href="PVRTVertex_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTVertex_8h.html#a24">EPVRTDataType</a> { <br>
&nbsp;&nbsp;<a class="el" href="PVRTVertex_8h.html#a24a0">EPODDataNone</a>, 
<a class="el" href="PVRTVertex_8h.html#a24a1">EPODDataFloat</a>, 
<a class="el" href="PVRTVertex_8h.html#a24a2">EPODDataInt</a>, 
<a class="el" href="PVRTVertex_8h.html#a24a3">EPODDataUnsignedShort</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="PVRTVertex_8h.html#a24a4">EPODDataRGBA</a>, 
<a class="el" href="PVRTVertex_8h.html#a24a5">EPODDataARGB</a>, 
<a class="el" href="PVRTVertex_8h.html#a24a6">EPODDataD3DCOLOR</a>, 
<a class="el" href="PVRTVertex_8h.html#a24a7">EPODDataUBYTE4</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="PVRTVertex_8h.html#a24a8">EPODDataDEC3N</a>, 
<a class="el" href="PVRTVertex_8h.html#a24a9">EPODDataFixed16_16</a>, 
<a class="el" href="PVRTVertex_8h.html#a24a10">EPODDataUnsignedByte</a>, 
<a class="el" href="PVRTVertex_8h.html#a24a11">EPODDataShort</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="PVRTVertex_8h.html#a24a12">EPODDataShortNorm</a>, 
<a class="el" href="PVRTVertex_8h.html#a24a13">EPODDataByte</a>, 
<a class="el" href="PVRTVertex_8h.html#a24a14">EPODDataByteNorm</a>, 
<a class="el" href="PVRTVertex_8h.html#a24a15">EPODDataUnsignedByteNorm</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="PVRTVertex_8h.html#a24a16">EPODDataUnsignedShortNorm</a>, 
<a class="el" href="PVRTVertex_8h.html#a24a17">EPODDataUnsignedInt</a>
<br>
 }</td></tr>

<tr><td colspan=2><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTVertex_8h.html#a18">PVRTVertexRead</a> (<a class="el" href="structPVRTVECTOR4f.html">PVRTVECTOR4f</a> *const pV, const void *const pData, const <a class="el" href="PVRTVertex_8h.html#a24">EPVRTDataType</a> eType, const int nCnt)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTVertex_8h.html#a19">PVRTVertexRead</a> (unsigned int *const pV, const void *const pData, const <a class="el" href="PVRTVertex_8h.html#a24">EPVRTDataType</a> eType)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTVertex_8h.html#a20">PVRTVertexWrite</a> (void *const pOut, const <a class="el" href="PVRTVertex_8h.html#a24">EPVRTDataType</a> eType, const int nCnt, const <a class="el" href="structPVRTVECTOR4f.html">PVRTVECTOR4f</a> *const pV)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTVertex_8h.html#a21">PVRTVertexWrite</a> (void *const pOut, const <a class="el" href="PVRTVertex_8h.html#a24">EPVRTDataType</a> eType, const unsigned int V)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTVertex_8h.html#a22">PVRTVertexTangentBitangent</a> (<a class="el" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> *const pvTan, <a class="el" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> *const pvBin, const <a class="el" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> *const pvNor, const float *const pfPosA, const float *const pfPosB, const float *const pfPosC, const float *const pfTexA, const float *const pfTexB, const float *const pfTexC)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="PVRTError_8h.html#a5">EPVRTError</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTVertex_8h.html#a23">PVRTVertexGenerateTangentSpace</a> (unsigned int *const pnVtxNumOut, char **const pVtxOut, unsigned int *const pui32Idx, const unsigned int nVtxNum, const char *const pVtx, const unsigned int nStride, const unsigned int nOffsetPos, <a class="el" href="PVRTVertex_8h.html#a24">EPVRTDataType</a> eTypePos, const unsigned int nOffsetNor, <a class="el" href="PVRTVertex_8h.html#a24">EPVRTDataType</a> eTypeNor, const unsigned int nOffsetTex, <a class="el" href="PVRTVertex_8h.html#a24">EPVRTDataType</a> eTypeTex, const unsigned int nOffsetTan, <a class="el" href="PVRTVertex_8h.html#a24">EPVRTDataType</a> eTypeTan, const unsigned int nOffsetBin, <a class="el" href="PVRTVertex_8h.html#a24">EPVRTDataType</a> eTypeBin, const unsigned int nTriNum, const float fSplitDifference)</td></tr>

</table>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="a24" doxytag="PVRTVertex.h::EPVRTDataType" ></a><p>
<br><br><h3>EPVRTDataType</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> enum <a class="el" href="PVRTVertex_8h.html#a24">EPVRTDataType</a>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Enumeration values: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em><a class="anchor" name="a24a0" doxytag="EPODDataNone" ></a>EPODDataNone</em>&nbsp;</td><td>
</td></tr>
<tr><td valign=top><em><a class="anchor" name="a24a1" doxytag="EPODDataFloat" ></a>EPODDataFloat</em>&nbsp;</td><td>
</td></tr>
<tr><td valign=top><em><a class="anchor" name="a24a2" doxytag="EPODDataInt" ></a>EPODDataInt</em>&nbsp;</td><td>
</td></tr>
<tr><td valign=top><em><a class="anchor" name="a24a3" doxytag="EPODDataUnsignedShort" ></a>EPODDataUnsignedShort</em>&nbsp;</td><td>
</td></tr>
<tr><td valign=top><em><a class="anchor" name="a24a4" doxytag="EPODDataRGBA" ></a>EPODDataRGBA</em>&nbsp;</td><td>
</td></tr>
<tr><td valign=top><em><a class="anchor" name="a24a5" doxytag="EPODDataARGB" ></a>EPODDataARGB</em>&nbsp;</td><td>
</td></tr>
<tr><td valign=top><em><a class="anchor" name="a24a6" doxytag="EPODDataD3DCOLOR" ></a>EPODDataD3DCOLOR</em>&nbsp;</td><td>
</td></tr>
<tr><td valign=top><em><a class="anchor" name="a24a7" doxytag="EPODDataUBYTE4" ></a>EPODDataUBYTE4</em>&nbsp;</td><td>
</td></tr>
<tr><td valign=top><em><a class="anchor" name="a24a8" doxytag="EPODDataDEC3N" ></a>EPODDataDEC3N</em>&nbsp;</td><td>
</td></tr>
<tr><td valign=top><em><a class="anchor" name="a24a9" doxytag="EPODDataFixed16_16" ></a>EPODDataFixed16_16</em>&nbsp;</td><td>
</td></tr>
<tr><td valign=top><em><a class="anchor" name="a24a10" doxytag="EPODDataUnsignedByte" ></a>EPODDataUnsignedByte</em>&nbsp;</td><td>
</td></tr>
<tr><td valign=top><em><a class="anchor" name="a24a11" doxytag="EPODDataShort" ></a>EPODDataShort</em>&nbsp;</td><td>
</td></tr>
<tr><td valign=top><em><a class="anchor" name="a24a12" doxytag="EPODDataShortNorm" ></a>EPODDataShortNorm</em>&nbsp;</td><td>
</td></tr>
<tr><td valign=top><em><a class="anchor" name="a24a13" doxytag="EPODDataByte" ></a>EPODDataByte</em>&nbsp;</td><td>
</td></tr>
<tr><td valign=top><em><a class="anchor" name="a24a14" doxytag="EPODDataByteNorm" ></a>EPODDataByteNorm</em>&nbsp;</td><td>
</td></tr>
<tr><td valign=top><em><a class="anchor" name="a24a15" doxytag="EPODDataUnsignedByteNorm" ></a>EPODDataUnsignedByteNorm</em>&nbsp;</td><td>
</td></tr>
<tr><td valign=top><em><a class="anchor" name="a24a16" doxytag="EPODDataUnsignedShortNorm" ></a>EPODDataUnsignedShortNorm</em>&nbsp;</td><td>
</td></tr>
<tr><td valign=top><em><a class="anchor" name="a24a17" doxytag="EPODDataUnsignedInt" ></a>EPODDataUnsignedInt</em>&nbsp;</td><td>
</td></tr>
</table>
</dl>
    </td>
  </tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="a23" doxytag="PVRTVertex.h::PVRTVertexGenerateTangentSpace" ></a><p>
<br><br><h3>PVRTVertexGenerateTangentSpace</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="PVRTError_8h.html#a5">EPVRTError</a> PVRTVertexGenerateTangentSpace </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">unsigned int *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pnVtxNumOut</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>char **const&nbsp;</td>
          <td class="mdname" nowrap> <em>pVtxOut</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>unsigned int *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pui32Idx</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const unsigned int&nbsp;</td>
          <td class="mdname" nowrap> <em>nVtxNum</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const char *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pVtx</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const unsigned int&nbsp;</td>
          <td class="mdname" nowrap> <em>nStride</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const unsigned int&nbsp;</td>
          <td class="mdname" nowrap> <em>nOffsetPos</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="PVRTVertex_8h.html#a24">EPVRTDataType</a>&nbsp;</td>
          <td class="mdname" nowrap> <em>eTypePos</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const unsigned int&nbsp;</td>
          <td class="mdname" nowrap> <em>nOffsetNor</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="PVRTVertex_8h.html#a24">EPVRTDataType</a>&nbsp;</td>
          <td class="mdname" nowrap> <em>eTypeNor</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const unsigned int&nbsp;</td>
          <td class="mdname" nowrap> <em>nOffsetTex</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="PVRTVertex_8h.html#a24">EPVRTDataType</a>&nbsp;</td>
          <td class="mdname" nowrap> <em>eTypeTex</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const unsigned int&nbsp;</td>
          <td class="mdname" nowrap> <em>nOffsetTan</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="PVRTVertex_8h.html#a24">EPVRTDataType</a>&nbsp;</td>
          <td class="mdname" nowrap> <em>eTypeTan</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const unsigned int&nbsp;</td>
          <td class="mdname" nowrap> <em>nOffsetBin</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="PVRTVertex_8h.html#a24">EPVRTDataType</a>&nbsp;</td>
          <td class="mdname" nowrap> <em>eTypeBin</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const unsigned int&nbsp;</td>
          <td class="mdname" nowrap> <em>nTriNum</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const float&nbsp;</td>
          <td class="mdname" nowrap> <em>fSplitDifference</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pnVtxNumOut</em>&nbsp;</td><td>Output vertex count </td></tr>
    <tr><td valign=top><em>pVtxOut</em>&nbsp;</td><td>Output vertices (program must free() this) </td></tr>
  </table>
</dl>
<dl compact><dt><b>Modified:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pui32Idx</em>&nbsp;</td><td>input AND output; index array for triangle list </td></tr>
  </table>
</dl>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>nVtxNum</em>&nbsp;</td><td>Input vertex count </td></tr>
    <tr><td valign=top><em>pVtx</em>&nbsp;</td><td>Input vertices </td></tr>
    <tr><td valign=top><em>nStride</em>&nbsp;</td><td>Size of a vertex (in bytes) </td></tr>
    <tr><td valign=top><em>nOffsetPos</em>&nbsp;</td><td>Offset in bytes to the vertex position </td></tr>
    <tr><td valign=top><em>eTypePos</em>&nbsp;</td><td>Data type of the position </td></tr>
    <tr><td valign=top><em>nOffsetNor</em>&nbsp;</td><td>Offset in bytes to the vertex normal </td></tr>
    <tr><td valign=top><em>eTypeNor</em>&nbsp;</td><td>Data type of the normal </td></tr>
    <tr><td valign=top><em>nOffsetTex</em>&nbsp;</td><td>Offset in bytes to the vertex texture coordinate to use </td></tr>
    <tr><td valign=top><em>eTypeTex</em>&nbsp;</td><td>Data type of the texture coordinate </td></tr>
    <tr><td valign=top><em>nOffsetTan</em>&nbsp;</td><td>Offset in bytes to the vertex tangent </td></tr>
    <tr><td valign=top><em>eTypeTan</em>&nbsp;</td><td>Data type of the tangent </td></tr>
    <tr><td valign=top><em>nOffsetBin</em>&nbsp;</td><td>Offset in bytes to the vertex bitangent </td></tr>
    <tr><td valign=top><em>eTypeBin</em>&nbsp;</td><td>Data type of the bitangent </td></tr>
    <tr><td valign=top><em>nTriNum</em>&nbsp;</td><td>Number of triangles </td></tr>
    <tr><td valign=top><em>fSplitDifference</em>&nbsp;</td><td>Split a vertex if the DP3 of tangents/bitangents are below this (range -1..1) </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>PVR_FAIL if there was a problem. </dd></dl>
<dl compact><dt><b>Description:</b></dt><dd>Calculates the tangent space for all supplied vertices. Writes tangent and bitangent vectors to the output vertices, copies all other elements from input vertices. Will split vertices if necessary - i.e. if two triangles sharing a vertex want to assign it different tangent-space matrices. The decision whether to split uses fSplitDifference - of the DP3 of two desired tangents or two desired bitangents is higher than this, the vertex will be split. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a19" doxytag="PVRTVertex.h::PVRTVertexRead" ></a><p>
<br><br><h3>PVRTVertexRead</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTVertexRead </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">unsigned int *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pV</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const void *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pData</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="PVRTVertex_8h.html#a24">EPVRTDataType</a>&nbsp;</td>
          <td class="mdname" nowrap> <em>eType</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pV</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pData</em>&nbsp;</td><td></td></tr>
    <tr><td valign=top><em>eType</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Read an int </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a18" doxytag="PVRTVertex.h::PVRTVertexRead" ></a><p>
<br><br><h3>PVRTVertexRead</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTVertexRead </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structPVRTVECTOR4f.html">PVRTVECTOR4f</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pV</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const void *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pData</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="PVRTVertex_8h.html#a24">EPVRTDataType</a>&nbsp;</td>
          <td class="mdname" nowrap> <em>eType</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const int&nbsp;</td>
          <td class="mdname" nowrap> <em>nCnt</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pV</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pData</em>&nbsp;</td><td></td></tr>
    <tr><td valign=top><em>eType</em>&nbsp;</td><td></td></tr>
    <tr><td valign=top><em>nCnt</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Read a vector </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a22" doxytag="PVRTVertex.h::PVRTVertexTangentBitangent" ></a><p>
<br><br><h3>PVRTVertexTangentBitangent</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTVertexTangentBitangent </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pvTan</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pvBin</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structPVRTVECTOR3f.html">PVRTVECTOR3</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pvNor</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const float *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pfPosA</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const float *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pfPosB</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const float *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pfPosC</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const float *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pfTexA</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const float *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pfTexB</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const float *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pfTexC</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pvTan</em>&nbsp;</td><td></td></tr>
    <tr><td valign=top><em>pvBin</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pvNor</em>&nbsp;</td><td></td></tr>
    <tr><td valign=top><em>pfPosA</em>&nbsp;</td><td></td></tr>
    <tr><td valign=top><em>pfPosB</em>&nbsp;</td><td></td></tr>
    <tr><td valign=top><em>pfPosC</em>&nbsp;</td><td></td></tr>
    <tr><td valign=top><em>pfTexA</em>&nbsp;</td><td></td></tr>
    <tr><td valign=top><em>pfTexB</em>&nbsp;</td><td></td></tr>
    <tr><td valign=top><em>pfTexC</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Calculates the tangent and bitangent vectors for vertex 'A' of the triangle defined by the 3 supplied 3D position coordinates (pfPosA) and 2D texture coordinates (pfTexA). </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a21" doxytag="PVRTVertex.h::PVRTVertexWrite" ></a><p>
<br><br><h3>PVRTVertexWrite</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTVertexWrite </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pOut</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="PVRTVertex_8h.html#a24">EPVRTDataType</a>&nbsp;</td>
          <td class="mdname" nowrap> <em>eType</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const unsigned int&nbsp;</td>
          <td class="mdname" nowrap> <em>V</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pOut</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>eType</em>&nbsp;</td><td></td></tr>
    <tr><td valign=top><em>V</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Write an int </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a20" doxytag="PVRTVertex.h::PVRTVertexWrite" ></a><p>
<br><br><h3>PVRTVertexWrite</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTVertexWrite </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pOut</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="PVRTVertex_8h.html#a24">EPVRTDataType</a>&nbsp;</td>
          <td class="mdname" nowrap> <em>eType</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const int&nbsp;</td>
          <td class="mdname" nowrap> <em>nCnt</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structPVRTVECTOR4f.html">PVRTVECTOR4f</a> *const&nbsp;</td>
          <td class="mdname" nowrap> <em>pV</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>pOut</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>eType</em>&nbsp;</td><td></td></tr>
    <tr><td valign=top><em>nCnt</em>&nbsp;</td><td></td></tr>
    <tr><td valign=top><em>pV</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Write a vector </dd></dl>
    </td>
  </tr>
</table>
<br>
<br>
<P align=left><FONT size=2><STRONG><A 
   href="http://www.imgtec.com/powervr/insider/legal/index.asp">Copyright</A> � 
   1999-2008, Imagination Technologies Ltd.</STRONG></FONT></P>
<hr>
<address style="align: left;"><small><FONT color=f0f>
Generated by <a href="http://www.doxygen.org/index.html">DOXYGEN</a> 1.3.6</small></address>
</body>
</html>
